支持 boolean 值的属性
史博辉 2022-10-17 00:48:00 html
XHTML 要求所有元素的所有属性名都应该小写,所有属性都必须指定属性值,不能简写;而且所有属性值必须使用引号引起来。
HTML5 再次回归“松散”的语法。允许部分“标志性”的属性可以省略属性值。例如,如下写法完全符合 HTML5 的规范。
<input checked type="checkbox"/>
<input readonly type="text"/>
<input disabled type="text"/>
<option value="1" selected/>
这些属性都是支持 boolean 值的属性,因此上面4行代码等同于如下4行:
<input checked="true" type="checkbox"/>
<input readonly="true" type="text"/>
<input disabled="true" type="text"/>
<option value="1" selected="true">a</option>
当然,如果开发者习惯了 XHTML 严格的语法,HTML5 同样也支持那种严格的语法。也就是说,下面写法也是有效的。
<input checked="checked" type="checkbox"/>
<input readonly="readonly" type="text"/>
<input disabled="disabled" type="text"/>
<option value="1" selected="selected">a</option>
HTML5 规范还允许这些支持 boolean 值的属性使用空值,空值也代表 true。上面代码可写成如下形式:
<input checked="" type="checkbox"/>
<input readonly="" type="text"/>
<input disabled="" type="text"/>
<option value="1" selected="">a</option>
如果完全省略这些属性(连属性名都不出现),那么该属性的属性值相当于 false。
下表列出了 HTML5 中允许省略属性值的属性。
HTML5 | XHTML |
---|---|
checked | checked="checked" |
readonly | readonly="readonly" |
disabled | disabled="disabled" |
selected | selected="selected" |
defer | defer="defer" |
ismap | ismap="ismap" |
nohref | nohref="nohref" |
noshade | noshade="noshade" |
nowrap | nowrap="nowrap" |
multiple | multiple="multiple" |
noresize | noresize="noresize" |